home *** CD-ROM | disk | FTP | other *** search
/ Day Cry / Day Cry CD.bin / oh_towns / ugoku / src.lzh / MOVPLAY / MOVXSUB.C < prev    next >
Text File  |  1994-09-08  |  39KB  |  1,641 lines

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <winb.h>
  5. #include <te.h>
  6. #include <fntb.h>
  7. #include <gui.h>
  8. #include <file_dlg.h>
  9. #include <vtbios.h>
  10. #include <egb.h>
  11. #include <mos.h>
  12. #include <snd.h>
  13. #include "ugoku.h"
  14.  
  15. #define V02TYPE 10        /* V02è╓îWé╠Åêù¥ */
  16. #define MOVTYPE 11        /* MOVè╓îWé╠Åêù¥ */
  17.  
  18. /* abou */
  19. int    alertId = -1 ;
  20. int    messageId[3] = -1 ;
  21. int    dspIconId = -1 ;
  22. int    aboutOKBtnId = -1 ;
  23. /* dsk */
  24. int    baseDialogId = -1 ;
  25. int    menubarId = -1 ;
  26. int    menuId = -1 ;
  27. int    mItemId[3] = -1 ;
  28. int    SDKmenuId = -1 ;
  29. int    SDKmItemId[3] = -1 ;
  30. int    fileMenuId = -1 ;
  31. int    fileMItemId[2] = -1 ;
  32. int    setMenuId = -1 ;
  33. int    setMItemId[2] = -1 ;
  34. int    quitIconId = -1 ;
  35. int    namebarId = -1 ;
  36. int    nameMesId = -1 ;
  37. int    wakuDialogId = -1 ;
  38. /* err */
  39. int    errorId = -1 ;
  40. int    errorOKBtnId = -1 ;
  41. int    errorIconId = -1 ;
  42. int    errormessage[2] = -1 ;
  43. /* set */
  44. int    setDialogId = -1 ;
  45. int    setMesId[17] = -1 ;
  46. int    setOKBtnId = -1 ;
  47. int    setCanBtnId = -1 ;
  48. int    setSubDialogId = -1 ;
  49. int    waitNumId = -1 ;
  50. int    setBtnId[9] = -1 ;
  51.  
  52. static int    playType = -1 ;            /*  mov or v02                 */
  53. static int    screenMode = 10 ;        /*  page0é╠âXâNâèü[âôâéü[âh */
  54.  
  55. static int    setFlag ;                /*    ò\ĪÉ▌ÆΦé╠âtâëâO        */
  56. static int    wait ;                    /*    âEâFâCâgÉ▌ÆΦùpâÅü[âN    */
  57. static int    scnMode ;                /*    ëµû╩âéü[âhÉ▌ÆΦùpâÅü[âN    */
  58. static int    zoom ;                    /*    ö{ùªÉ▌ÆΦùpâÅü[âN        */
  59. static int    playMode ;                /*    ì─É╢âéü[âhÉ▌ÆΦùpâÅü[âN    */
  60. static int    loop ;                    /*    âïü[âvì─É╢é╠âtâëâO        */
  61.  
  62. static char    path[80] ;
  63. static char *namePoint ;
  64.  
  65. extern    char    *guiEgbPtr ;    /*    EGB é╠âÅü[âNâAâhâîâX    */
  66.  
  67. /*
  68.         èεû{âZâbâg
  69. */
  70.  
  71. /*    É▌ÆΦé╖éΘé⌐üAĵéΦÅ┴é╖é⌐üH    */
  72. /*    initDataIMVSET:setOKBtnId:MJ_DBUTTONL40é╠î─é╤Åoé╡è╓Éö    */
  73. /*    initDataIMVSET:setCanBtnId:MJ_DBUTTONL40é╠î─é╤Åoé╡è╓Éö    */
  74. int    setOKchk(kobj, messId, argc, pev, trigger)
  75. int        kobj ;
  76. int        messId ;
  77. int        argc ;
  78. EVENT    *pev ;
  79. int        trigger ;
  80. {
  81.     if( kobj == setOKBtnId )
  82.         setFlag = TRUE ;
  83.     else
  84.         setFlag = FALSE ;
  85.     MMI_SetHaltFlag( TRUE ) ;
  86.     return NOERR ;
  87. }
  88.  
  89. /*    âEâFâCâgÆlé≡É▌ÆΦ    */
  90. /*    initDataIMVSET:waitNumId:MJ_NUMBOXL40é╠î─é╤Åoé╡è╓Éö    */
  91. int    waitSet(kobj, messId, argc, pev, trigger)
  92. int        kobj ;
  93. int        messId ;
  94. int        argc ;
  95. EVENT    *pev ;
  96. int        trigger ;
  97. {
  98.     int    var, min, max, delta, ptColumn ;
  99.     MMI_SendMessage( kobj, MM_GETNUMBOX, 5,
  100.                                         &var, &min, &max, &delta, &ptColumn ) ;
  101.     wait = var ;
  102.     return NOERR ;
  103. }
  104.  
  105. /*    ëµû╩âéü[âhé≡É▌ÆΦüiâëâWâIâ{â^âôüj    */
  106. /*    initDataIMVSET:setBtnId[0]:MJ_TICONL40é╠î─é╤Åoé╡è╓Éö    */
  107. /*    initDataIMVSET:setBtnId[1]:MJ_TICONL40é╠î─é╤Åoé╡è╓Éö    */
  108. int    screenSet(kobj, messId, argc, pev, trigger)
  109. int        kobj ;
  110. int        messId ;
  111. int        argc ;
  112. EVENT    *pev ;
  113. int        trigger ;
  114. {
  115.     if( kobj == setBtnId[0] )
  116.     {
  117.         MTL_setFlagObj( setBtnId[0], MS_UNSELECT ) ;
  118.         MTL_resetFlagObj( setBtnId[1], (~(MS_UNSELECT | MS_TOGGLE)) ) ;
  119.         MMI_SendMessage( setBtnId[1], MM_SHOW, 0 ) ;
  120.         scnMode = 0 ;            /*    ânâCâXâLâââô    */
  121.     }
  122.     else
  123.     {
  124.         MTL_resetFlagObj( setBtnId[0], (~(MS_UNSELECT | MS_TOGGLE)) ) ;
  125.         MTL_setFlagObj( setBtnId[1], MS_UNSELECT ) ;
  126.         MMI_SendMessage( setBtnId[0], MM_SHOW, 0 ) ;
  127.         scnMode = 1 ;            /*    âìü[âXâLâââô    */
  128.     }
  129.     return NOERR ;
  130. }
  131.  
  132. /*    ì─É╢ù╠êµé≡É▌ÆΦüiâëâWâIâ{â^âôüj    */
  133. /*    initDataIMVSET:setBtnId[2]:MJ_TICONL40é╠î─é╤Åoé╡è╓Éö    */
  134. /*    initDataIMVSET:setBtnId[3]:MJ_TICONL40é╠î─é╤Åoé╡è╓Éö    */
  135. int    playSet(kobj, messId, argc, pev, trigger)
  136. int        kobj ;
  137. int        messId ;
  138. int        argc ;
  139. EVENT    *pev ;
  140. int        trigger ;
  141. {
  142.     if( kobj == setBtnId[2] )
  143.     {
  144.         MTL_setFlagObj( setBtnId[2], MS_UNSELECT ) ;
  145.         MTL_resetFlagObj( setBtnId[3], (~(MS_UNSELECT | MS_TOGGLE)) ) ;
  146.         MMI_SendMessage( setBtnId[3], MM_SHOW, 0 ) ;
  147.         playMode = 0 ;            /*    âüâéâèì─É╢    */
  148.     }
  149.     else
  150.     {
  151.         MTL_resetFlagObj( setBtnId[2], (~(MS_UNSELECT | MS_TOGGLE)) ) ;
  152.         MTL_setFlagObj( setBtnId[3], MS_UNSELECT ) ;
  153.         MMI_SendMessage( setBtnId[2], MM_SHOW, 0 ) ;
  154.         playMode = 1 ;            /*    âfâBâXâNì─É╢    */
  155.     }
  156.     return NOERR ;
  157. }
  158.  
  159. /*    ègæσùªé≡É▌ÆΦüiâëâWâIâ{â^âôüj    */
  160. /*    initDataIMVSET:setBtnId[4]:MJ_TICONL40é╠î─é╤Åoé╡è╓Éö    */
  161. /*    initDataIMVSET:setBtnId[5]:MJ_TICONL40é╠î─é╤Åoé╡è╓Éö    */
  162. /*    initDataIMVSET:setBtnId[6]:MJ_TICONL40é╠î─é╤Åoé╡è╓Éö    */
  163. /*    initDataIMVSET:setBtnId[7]:MJ_TICONL40é╠î─é╤Åoé╡è╓Éö    */
  164. int    zoomSet(kobj, messId, argc, pev, trigger)
  165. int        kobj ;
  166. int        messId ;
  167. int        argc ;
  168. EVENT    *pev ;
  169. int        trigger ;
  170. {
  171.     if( kobj == setBtnId[4] )
  172.     {
  173.         MTL_setFlagObj( setBtnId[4], MS_UNSELECT ) ;
  174.         MTL_resetFlagObj( setBtnId[zoom+4], (~(MS_UNSELECT | MS_TOGGLE)) ) ;
  175.         MMI_SendMessage( setBtnId[zoom+4], MM_SHOW, 0 ) ;
  176.         zoom = 0 ;            /*    0.5ö{    */
  177.     }
  178.     else
  179.     if( kobj == setBtnId[5] )
  180.     {
  181.         MTL_setFlagObj( setBtnId[5], MS_UNSELECT ) ;
  182.         MTL_resetFlagObj( setBtnId[zoom+4], (~(MS_UNSELECT | MS_TOGGLE)) ) ;
  183.         MMI_SendMessage( setBtnId[zoom+4], MM_SHOW, 0 ) ;
  184.         zoom = 1 ;            /*    éPö{    */
  185.     }
  186.     else
  187.     if( kobj == setBtnId[6] )
  188.     {
  189.         MTL_setFlagObj( setBtnId[6], MS_UNSELECT ) ;
  190.         MTL_resetFlagObj( setBtnId[zoom+4], (~(MS_UNSELECT | MS_TOGGLE)) ) ;
  191.         MMI_SendMessage( setBtnId[zoom+4], MM_SHOW, 0 ) ;
  192.         zoom = 2 ;            /*    1.5ö{    */
  193.     }
  194.     else
  195.     {
  196.         MTL_setFlagObj( setBtnId[7], MS_UNSELECT ) ;
  197.         MTL_resetFlagObj( setBtnId[zoom+4], (~(MS_UNSELECT | MS_TOGGLE)) ) ;
  198.         MMI_SendMessage( setBtnId[zoom+4], MM_SHOW, 0 ) ;
  199.         zoom = 3 ;            /*    éQö{    */
  200.     }
  201.     return NOERR ;
  202. }
  203.  
  204.  
  205.  
  206. /*    âtâ@âCâïæIæ≡    */
  207.  
  208.     /* MOV */
  209. static int    movframe ;        /* èeÄφô«ëµâfü[â^Åεò± */
  210. static int    movx0 ;
  211. static int    movy0 ;
  212. static int    movx1 ;
  213. static int    movy1 ;
  214. static int    movwait ;
  215.  
  216. static int    movWait = 0 ;                    /*    âEâFâCâgÉ▌ÆΦùpâÅü[âN    */
  217. static int    movScnMode = 0 ;                /*    ëµû╩âéü[âhÉ▌ÆΦùpâÅü[âN    */
  218. static int    movZoom = 1 ;                    /*    ö{ùªÉ▌ÆΦùpâÅü[âN        */
  219. static int    movPlayMode = 0 ;                /*    ì─É╢âéü[âhÉ▌ÆΦùpâÅü[âN    */
  220. static int    movLoop = 1 ;                    /*    âïü[âvì─É╢é╠âtâëâO        */
  221.  
  222.     /* V02 */
  223. static int    v02frame ;        /* èeÄφô«ëµâfü[â^Åεò± */
  224. static int    v02x ;
  225. static int    v02y ;
  226. static int    v02wait ;
  227.  
  228. static int    v02Wait = 0 ;                    /*    âEâFâCâgÉ▌ÆΦùpâÅü[âN    */
  229. static int    v02ScnMode = 0 ;                /*    ëµû╩âéü[âhÉ▌ÆΦùpâÅü[âN    */
  230. static int    v02Zoom = 1 ;                    /*    ö{ùªÉ▌ÆΦùpâÅü[âN        */
  231. static int    v02PlayMode = 1 ;                /*    ì─É╢âéü[âhÉ▌ÆΦùpâÅü[âN    */
  232. static int    v02Loop = 0 ;                    /*    âïü[âvì─É╢é╠âtâëâO        */
  233.  
  234. int    selectFunc0(kobj, messId, argc, pev, trigger)
  235. int        kobj ;
  236. int        messId ;
  237. int        argc ;
  238. EVENT    *pev ;
  239. int        trigger ;
  240. {
  241.     char            *ExtStr[] = { "*.MOV", "*.V02", NULL } ;
  242.     unsigned int    MSlctCnt ;
  243.     int                Atr, ret ;
  244.  
  245.     /* âüâjâàü[é╞â{â^âôé≡Ägéªé╚éóéµéñé╔é╖éΘ */
  246.     MTL_setAtrObj( menubarId, MS_DSPONLYL40 ) ;
  247.     MTL_setAtrObj( SDKmItemId[2], MS_INACTIVEL40 ) ;
  248.  
  249.     ret = FDG_DspFileDlg(MMI_GetBaseObj(), FDG_FILEONLY,
  250.                                              NULL, ExtStr, &MSlctCnt) ;
  251.     if( ret && MSlctCnt > 0 )    /*    É│é╡é¡âtâ@âCâïû╝é≡Ä√ô╛é╡é╜é⌐üH    */
  252.     {
  253.         FDG_GetPathName( path, &Atr, 0 ) ;
  254.         playType = -1 ;
  255.  
  256.         if( get_file_kakucho( path ) == DWORD( ".V02   " ) )
  257.         {
  258.             p_waku_del() ; /* ÿgé≡ò┬é▀éΘ */
  259.  
  260. /* Åεò±é≡ô╟é±é┼ì┼Åëé╠âtâîü[âÇé≡ò\Ī(1993 9é╔ÉVé╡é¡âëâCâuâëâèé╔Æ╟ë┴é╡é╜ï@ö\) */
  261. /*                                                                        */
  262. /*   é▒é▒é┼é═,pathé╔Åæé⌐éΩé╜v02âtâ@âCâïé╠èeÄφé╠Åεò±é≡ô╟é▌ĵé┴é─,é╗é╠    */
  263. /*   ì┼Åëé╠âtâîü[âÇé≡vramé╠âyü[âWéOé╔ò\Īé│é╣é─éóéΘí guiâëâCâuâëâèê╚èO  */
  264. /*   é┼Ägùpé╖éΘÅΩìçé═,ì┼îπé╠2é┬é╠ê°Éöé≡malloc,freeé╞é╖éΩé╬éµéóí         */
  265.  
  266.             ret
  267.              = v02_head_read_and_dsp( path, 
  268.                &v02frame, &v02x, &v02y, &v02wait, 0, TL_malloc, TL_free );
  269.  
  270.             if( screenMode != 5 )
  271.             {
  272.                 screenMode = 5 ;
  273.                 EGB_displayPage(guiEgbPtr,0,0);
  274.                 EGB_resolution(guiEgbPtr,0,5);        /* âéü[âh5 */
  275.                 EGB_resolution(guiEgbPtr,1,3);        /* âéü[âh3 */
  276.                 setPalette( guiEgbPtr ) ;
  277.                 EGB_displayPage(guiEgbPtr,1,3);
  278.             }
  279.             if( ret == NOERR )
  280.             {
  281.                 p_v02_graph_init( v02Zoom+1, v02x, v02y ) ;
  282.                                     /* ö{ùªé╔éáéφé╣é─ëµû╩É▌ÆΦ */
  283.                 MG_mosDisp( 0 ) ;
  284.  
  285.                 p_waku_clear1( v02x, v02y, v02Zoom+1 ) ;
  286.                 EGB_displayPage(guiEgbPtr,1,3);
  287.  
  288.                 MG_mosDisp( 1 ) ;
  289.                 playType = V02TYPE ;
  290.             }
  291.             else
  292.             {
  293.                 playType = -1 ;
  294.             }
  295.             namePointSet() ;    /* display file name */
  296.             MMI_SendMessage( namebarId, MM_SHOW, 0 ) ;
  297.  
  298.         }
  299.  
  300.         if( get_file_kakucho( path ) == DWORD( ".MOV   " ) )
  301.         {
  302.             p_waku_del() ; /* ÿgé≡ò┬é▀éΘ */
  303.  
  304. /* Åεò±é≡ô╟é±é┼ì┼Åëé╠âtâîü[âÇé≡ò\Ī(1993 9é╔ÉVé╡é¡âëâCâuâëâèé╔Æ╟ë┴é╡é╜ï@ö\) */
  305. /*